package com.mybatis.demo.main;

import com.mybatis.demo.mapper.T1Mapper;
import com.mybatis.demo.pojo.T1DO;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author zhangyan
 */
public class MybatisDemo {

  public static void main(String[] args) throws Exception {
    String resource = "sqlMapConfig.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    //这一行代码正是初始化工作的开始。
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //6. 进入openSession方法。
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //8.进入selectList方法，多个重载方法。
    //这里不再调用SqlSession 的api，而是获得了接口对象，调用接口中的方法。
    //通过mapperProxyFactory创建接口的代理对象MapperProxy
    T1Mapper mapper = sqlSession.getMapper(T1Mapper.class);
//    //这里回调MapperProxy的invoke方法
//    T1DO t1DO = mapper.selectOne(1L,"");
    Map<String,Object> params = new HashMap<String,Object>();
    params.put("id",1L);
    List<Object> objects = sqlSession.selectList("com.mybatis.demo.mapper.T1Mapper.selectOne", params);
    sqlSession.selectList("com.mybatis.demo.mapper.T1Mapper.selectOne",params);
//    System.out.println(t1DO);


  }

}
